The present invention relates in general to computer-generated animation and in particular to rendering shadows with a hand-painted appearance.
Three-dimensional (3-D) animation generally begins with a geometric model of the objects that will appear in the animated scene. Each object is modeled, e.g., as a mesh of polygons in 3-D space, and various attributes of the object's surface are associated with points in the mesh, such as the vertices of the polygons. For example, attributes associated with a point often include a color, a surface normal, a transparency parameter, reflectivity parameters, and one or more sets of texture coordinates, allowing one or more textures to be applied to the surface.
To generate (render) the images, the positions of various objects in the scene are established; for animated images, each image is generated to correspond to a particular time, and positions of at least some objects may vary with time. A viewpoint, or virtual camera position, is established, and a screen area (generally normal to the camera) is defined. The screen area is divided into small sub-areas, referred to herein as pixels, and a color for each pixel is determined based on the attributes of the object (or objects) that project onto that pixel. Which object(s) project onto a pixel can be determined using a variety of techniques, including ray-tracing. In ray tracing, rays are drawn from the pixel to the object (or from the object to the pixel), and the intersection of the ray with the object's surface determines which portion of the object's surface (e.g., which polygon or which vertices) should be used to compute the pixel's color. Computers are used extensively in both the modeling and rendering phases.
Computer-generated 3-D animation (referred to herein as “CGA”) usually approximates a photorealistic look. Objects have crisp, smooth edges and surfaces that do not bleed or smear into each other. Shadows are modeled exactly based on straight-line propagation of light around the edges of objects, so that the rendered shadow looks like the shadow that a real object would cast.
This photorealistic look of CGA is esthetically limiting. Traditional hand-drawn animation allows the animator to depart from photorealistic rendering and adopt a more “painterly” style, with uneven brush strokes, “loose” paint (i.e., disconnected fragments of paint matching an object's color) at edges of objects and so on. This artistic freedom allows the artist to adapt the look of the animated world to fit the story being told, and this stylization is generally regarded as one of the advantages of animation over live action.
Efforts to duplicate this painterly look in CGA have not been satisfying. For instance, paintbrush textures have been applied to rendered scenes, but the result is usually a displeasing “screen door” effect as the characters and other objects move under a fixed texture. Other attempts to apply paintbrush-like textures to objects have led to distracting “popping” as loose paint bits appear and disappear from one frame to the next. Some techniques for incorporating painterly elements, e.g., into backgrounds, have been developed, but these techniques generally have not scaled well or been easy to integrate into CGA processes.
In the case of shadows, it has been difficult to render a shadow that looks “painted.” Painters usually create the shadows separately from the objects. Thus, for instance, to the extent that an edge of an object is uneven (e.g., due to wavering brush strokes or loose paint), that unevenness is generally not duplicated in the shadow. But the shadow generally does have its own uneven quality as a result of the painter's technique. Prior art efforts to render painterly shadows have generally relied simply on blurring or softening the edges of shadow regions, but such blurring does not impart a brushstroke character to the shadows.
It would therefore be desirable to provide improved computer-based techniques for rendering images with a painterly look.